package com.enjava;

import java.util.Calendar;
import java.util.Date;

import javax.el.ValueExpression;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlInputText;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

@ManagedBean(name="quilloBean")
@RequestScoped
public class MiBean {
	@ManagedProperty(value = "#{emf}")
	EMF emf;
	
	public void setEmf(EMF emf) {
		this.emf = emf;
	}
	String elNuevoValor;
	public String getElNuevoValor() {
		return elNuevoValor;
	}

	public void setElNuevoValor(String elNuevoValor) {
		this.elNuevoValor = elNuevoValor;
	}
	String mensaje="bienvenido a quillo jsf world!";
	Date fechaCreacion;
	HtmlCommandButton boton;
	HtmlInputText h;
	public String envia(){
		
		UIComponent parent = boton.getParent();
		boolean existe=false;
		for(UIComponent c:parent.getChildren())
			if(c.getId().equals("ola")) existe=true;
		if(!existe){
		 h=new HtmlInputText();
		h.setValue("tomaYa!");
		h.setId("ola");
		
		FacesContext facesC=FacesContext.getCurrentInstance();
	       
        ValueExpression valueExpression=facesC.getApplication()
                    .getExpressionFactory()
                    .createValueExpression(
                                facesC.getELContext(), 
                                "#{quilloBean.elNuevoValor}", 
                                String.class);
       
        h.setValueExpression("value", valueExpression);
		
		parent.getChildren().add(h);
		}else{
			System.out.println(elNuevoValor);
		}
		
		System.out.println("enviando..."+boton);
		boton.setDisabled(false);
		boton.setStyle("background-color:pink");
		EntityManager em = emf.getEM();
		EntityTransaction transaction = em.getTransaction();
		transaction.begin();
		Curso curso=new Curso();
		curso.setNombre("pruebaCurso");
		Examen examen=new Examen();
		examen.setFecha(Calendar.getInstance().getTime());
		examen.setNumero(3);
		
		curso.getExamenes().add(examen);
		Alumno alumno=new Alumno();
		alumno.setApellidos("ruz");
		alumno.setNombre("J.A.");
		alumno.setMatriculaActiva(false);
		curso.getAlumnos().add(alumno);
		alumno.setNombre(mensaje);
		em.persist(curso);
		transaction.commit();
		return null;
	}
	
	public HtmlCommandButton getBoton() {
		return boton;
	}

	public void setBoton(HtmlCommandButton boton) {
		this.boton = boton;
	}


	
	public MiBean() {
		super();
		fechaCreacion=Calendar.getInstance().getTime();
	}

	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	
	

}
